#pragma once
#include <semaphore.h>

class Semaphore
{
public:
    Semaphore(int pshared,int val)
    {
        sem_init(&_sem,pshared,val);
    }
    void P()
    {
        sem_wait(&_sem);
    }
    void V()
    {
        sem_post(&_sem);
    }
    ~Semaphore()
    {
        sem_destroy(&_sem);
    }
private:
    sem_t _sem;
};